package com.damai.crypt;

import java.security.KeyPair;

public interface IRsa {
	
	/**
	 * 使用公钥验证签名
	 * @param data
	 * @param sign
	 * @param publicKey
	 * @return
	 * @throws CryptException
	 */
	boolean verify(byte[] data,byte[] sign,byte[] publicKey) throws CryptException;
	
	/**
	 * 解密数据,使用私钥
	 * @param data
	 * @param privateKey
	 * @return
	 * @throws CryptException
	 */
	byte[] decrypt(byte[] data,byte[] privateKey) throws CryptException;
	
	
	/**
	 * 使用公钥加密数据
	 * @param data
	 * @param publicKey
	 * @return
	 * @throws CryptException
	 */
	byte[] encrypt(byte[] data,byte[] publicKey) throws CryptException;
	
	/**
	 * 使用私钥签名数据
	 * @param data
	 * @param privateKey
	 * @return
	 * @throws CryptException
	 */
	byte[] sign(byte[] data, byte[] privateKey) throws CryptException;
	
	
	/**
	 * 
	 * @param keySize
	 * @return
	 * @throws CryptException
	 */
	KeyPair generateKeyPair(int keySize) throws CryptException;
}
